package cn.yrec.rain.analysis.service;

import cn.yrec.rain.analysis.model.RaPDayRt;
import cn.yrec.rain.analysis.vo.FindRainRequestParam;
import cn.yrec.rain.analysis.vo.RainfallResult;

import java.util.List;

/**
 * 描述:
 *  相似性分析业务层接口
 * @createDate: 2023/03/30 22:36
 * @author: yanglichen
 */
public interface AnalysisService {

    /**
     * 方法描述: 根据请求参数找到场次雨
     * @author yanglichen
     * @date 2023-03-30 22:44
     * @param requestParam 请求参数
     * @return 场次雨列表
     **/
    List<RainfallResult> findRain(FindRainRequestParam requestParam);

    /**
     * 方法描述: 根据原形雨进行降雨相似性分析
     * @author yanglichen
     * @date 2023-04-03 11:12
     * @param requestParam
     * @return
     **/
    List<RainfallResult> conformAnalysis(RainfallResult requestParam);

    /**
     * 方法描述: 根据流域名称寻找原形雨
     * @author yanglichen
     * @date 2023-05-24 17:37
     * @param requestParam
     * @return
     **/
    List<RainfallResult> findRainByBasinName(FindRainRequestParam requestParam);

    /**
     * 方法描述: 通过开始时间和结束时间，站码列表，降雨阈值，判断这些站码列表中，那些是有数据的数据
     * @author yanglichen
     * @date 2023-08-21 10:25
     * @param param 请求参数
     * @return 有降雨的雨量站的数据
     **/
    List<RaPDayRt> judgeRain(FindRainRequestParam param);
}
